Skip to content

Conversation

@JunggiKim
Copy link
Contributor

@JunggiKim JunggiKim commented Oct 26, 2024

Added support for basic type functions supported by Java

Hello! I've added logic to support Java's basic type function interface

Resolves #1098

Added support for basic type functions
supported by Java

Resolves #1098
@JunggiKim
Copy link
Contributor Author

JunggiKim commented Oct 30, 2024

I've written two test codes
Failed to include in pull request.
Please check if the test code is correct
If so, should I apply for pull request again?

`

   @Test
public void testPrimitiveFunctionInputTypes() {

	Type type = FunctionTypeUtils.discoverFunctionTypeFromClass(IntConsumer.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(IntConsumer.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(IntSupplier.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(IntSupplier.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(IntFunction.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(IntFunction.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(ToIntFunction.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(ToIntFunction.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(LongConsumer.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(LongConsumer.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(LongSupplier.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(LongSupplier.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(LongFunction.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(LongFunction.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(ToLongFunction.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(ToLongFunction.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(DoubleConsumer.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(DoubleConsumer.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(DoubleSupplier.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(DoubleSupplier.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(DoubleFunction.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(DoubleFunction.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(ToDoubleFunction.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(ToDoubleFunction.class);
}


@Test
public void testPrimitiveFunctionOutputTypes() {
	Type type = FunctionTypeUtils.discoverFunctionTypeFromClass(IntConsumer.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(IntConsumer.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(IntSupplier.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(IntSupplier.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(IntFunction.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(IntFunction.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(ToIntFunction.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(ToIntFunction.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(LongConsumer.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(LongConsumer.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(LongSupplier.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(LongSupplier.class);


	type = FunctionTypeUtils.discoverFunctionTypeFromClass(LongFunction.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(LongFunction.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(ToLongFunction.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(ToLongFunction.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(DoubleConsumer.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(DoubleConsumer.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(DoubleSupplier.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(DoubleSupplier.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(DoubleFunction.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(DoubleFunction.class);

	type = FunctionTypeUtils.discoverFunctionTypeFromClass(ToDoubleFunction.class);
	assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(ToDoubleFunction.class);
}

`

@olegz
Copy link
Contributor

olegz commented Oct 30, 2024

Please include the test cases and run a full build.

 function Unit Test Add
 Resolves #1098
@JunggiKim
Copy link
Contributor Author

When I added the test and ran the build, there was no problem! I'm done committing
Sorry for not including the unit test code at first.

@olegz
Copy link
Contributor

olegz commented Oct 31, 2024

Resolves 9282266

@olegz olegz closed this Oct 31, 2024
@olegz olegz added this to the 4.2 milestone Oct 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support primitive function interfaces

4 participants